/**
 * Common 组件库统一导出
 *
 * 🏗️ 架构设计：
 * 1. 组件导出：所有通用组件的统一入口
 * 2. 钩子导出：所有自定义钩子的统一入口
 * 3. 类型导出：所有类型定义的统一入口
 * 4. 工具导出：所有工具函数的统一入口
 */

// ===== 组件导出 =====

/**
 * ModalSheet 组件系统
 */
export {
  // 主组件
  ModalSheet,

  // 子组件
  ModalSheetHeader,
  ModalSheetBody,
  ModalSheetFooter,

  // 主题提供者
  ThemeProvider,
  ThemeToggle,
} from './ModalSheet';

// ===== 钩子导出 =====

/**
 * 所有自定义钩子
 * 支持按需导入和树摇优化
 */
export {
  // ModalSheet 核心钩子
  useModalSheet,
  useDraggable,
  usePortal,

  // ModalSheet 交互钩子
  useSnapPoints,
  useMultiDirectionResize,
  useResizable,
  useGestureRecognition,

  // ModalSheet 体验钩子
  useTheme,
  useAccessibility,

  // 工具类和预设
  AnimationVariantGenerator,
  LIGHT_THEME,
  DARK_THEME,
  ANIMATION_PRESETS,
  EASING_FUNCTIONS,

  // 命名空间导出
  ModalSheetHooks,
  ThemeSystem,
  AnimationSystem,
} from './ModalSheet/hooks';

// ===== 类型导出 =====

/**
 * 所有类型定义
 */
export type {
  // ModalSheet 基础类型
  Position,
  SnapPoint,
  ModalPosition,
  ResizeDirection,

  // ModalSheet 组件类型
  ModalSheetProps,
  ModalSheetHeaderProps,
  ModalSheetBodyProps,
  ModalSheetFooterProps,

  // 主题系统类型
  ThemeMode,
  ThemeColors,
  Theme,

  // 动画系统类型
  EasingFunction,
  AnimationConfig,
  ChainAnimationConfig,

  // 别名类型
  AnimationEasingFunction,
  ModalAnimationConfig,
  ModalChainAnimationConfig,
} from './ModalSheet/hooks';

// ===== 工具函数导出（预留） =====

/**
 * 工具函数预留空间
 *
 * 示例：
 * - 样式工具函数
 * - 动画工具函数
 * - 主题工具函数
 * - 验证工具函数
 */

// export { cn, mergeRefs, createPortal } from './utils';

// ===== 常量导出 =====

/**
 * 常用常量
 */
export const COMMON_CONSTANTS = {
  // ModalSheet 默认配置
  DEFAULT_MODAL_CONFIG: {
    position: 'bottom' as const,
    closeOnEscape: true,
    closeOnOverlayClick: true,
    lockScroll: true,
    autoFocus: true,
    trapFocus: true,
  },

  // 默认动画配置
  DEFAULT_ANIMATION_CONFIG: {
    duration: 300,
    easing: 'easeOut' as const,
  },

  // 默认调整大小配置
  DEFAULT_RESIZE_CONFIG: {
    minWidth: 200,
    minHeight: 150,
  },
} as const;

/**
 * 使用指南
 *
 * 1. 组件使用：
 * ```typescript
 * import { ModalSheet, ModalSheetHeader } from '@/components/common';
 * ```
 *
 * 2. 钩子使用：
 * ```typescript
 * import { useModalSheet, useTheme } from '@/components/common';
 * ```
 *
 * 3. 类型使用：
 * ```typescript
 * import type { ModalSheetProps, Theme } from '@/components/common';
 * ```
 *
 * 4. 命名空间使用：
 * ```typescript
 * import { ModalSheetHooks, ThemeSystem } from '@/components/common';
 * ```
 *
 * 5. 常量使用：
 * ```typescript
 * import { COMMON_CONSTANTS } from '@/components/common';
 * ```
 */
